home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 2.2 KB | 72 lines |
- 100 CLS :REM "MATCH"
- 110 PRINT TAB(33);"****MATCH****"
- 120 PRINT :PRINT "THIS PROGRAM CALCULATES THE PARAMETERS OF A TRANSMISSION REQUIRED TO MATCH TWO REAL OR COMPLEX LOADS."
- 130 PRINT :PRINT TAB(24);"SERIES SOURCE DATA R +/-JX"
- 140 PRINT :BEEP :INPUT "ENTER REAL TERM ";R(1)
- 150 PRINT :BEEP :INPUT "ENTER J TERM, IF 0 ENTER 0 ";X(1)
- 160 PRINT :PRINT TAB(24);"SERIES LOAD IMPEDANCE DATA R =/-JX"
- 170 PRINT :BEEP :INPUT "ENTER REAL TERM ";R(2)
- 180 PRINT :BEEP :INPUT "ENTER J TERM, IF 0 ENTER 0 ";X(2)
- 190 PI=4*ATN(1)
- 200 IF R(1)<>R(2) THEN 250
- 210 IF X(1)<>0 THEN 730
- 220 IF X(2)<>0 THEN 730
- 230 Z=SQR(R(1)*R(2))
- 240 T=90 :GOTO 420
- 250 K7=((R(1)^2+X(1)^2)*R(2)-(R(2)^2+X(2)^2)*R(1))/(R(1)-R(2))
- 260 IF K7<0 THEN 730
- 270 Z=SQR(((R(1)^2+X(1)^2)*R(2)-(R(2)^2+X(2)^2)*R(1))/(R(1)-R(2)))
- 280 IF X(1)<>0 THEN 330
- 290 IF X(2)<>0 THEN 310
- 300 T=90 :GOTO 370
- 310 C=Z*(R(2)-R(1))/(X(1)*R(2)-X(2)*R(1))
- 320 GOTO 340
- 330 C=Z*(R(1)-R(2))/(X(1)*R(2)-X(2)*R(1))
- 340 T=ATN(C) :Z=INT(Z*100)/100
- 350 T=T*(180/PI) :IF T>0 THEN 370
- 360 T=T+180
- 370 L=T/360 :L=INT(L*1000)/1000
- 380 IF X(1)<0 THEN 400
- 390 A$="+" :GOTO 410
- 400 A$="-"
- 410 IF X(2)<0 THEN 430
- 420 B$="+" :GOTO 440
- 430 B$="-"
- 440 CLS :PRINT TAB(31);"Z line =";Z;"ohms"
- 450 PRINT :PRINT TAB(10);"--------------------";TAB(50);"--------------------"
- 460 PRINT TAB(30);"|";TAB(49);"|"
- 470 PRINT TAB(30);"|";TAB(49);"|"
- 480 PRINT TAB(30);"--------------------"
- 490 PRINT TAB(31);"LENGTH =";L;"Lg"
- 500 PRINT TAB(30);"--------------------"
- 510 PRINT TAB(30);"|";TAB(49);"|"
- 520 PRINT TAB(18);"Zin =";TAB(30);"|";TAB(49);"|";TAB(58);"Zout ="
- 530 PRINT TAB(10);"--------------------";TAB(50);"--------------------"
- 540 PRINT TAB(18);R(1);A$;"J";ABS(X(1));TAB(58);R(2);B$;"J";ABS(X(2))
- 550 PRINT :PRINT "NOTE: Lg IS THE GUIDED WAVELENGTH OF THE LINE USED."
- 560 PRINT :PRINT :PRINT :BEEP :PRINT "HARD COPY REQUIRED? (Y/N)"
- 570 P$=INKEY$ :IF P$="" THEN 570
- 580 IF P$="Y" THEN 600
- 590 IF P$<>"N" THEN 570 ELSE 720
- 600 LPRINT TAB(35);"Z line=";Z;"ohms"
- 610 FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
- 620 FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
- 630 LPRINT TAB(30);CHR$(245);TAB(50);CHR$(245)
- 640 GOSUB 800
- 650 LPRINT TAB(35);"LENGTH =";L;"Lg"
- 660 GOSUB 800
- 670 LPRINT TAB(10);"Zin =";R(1);A$;" J";ABS(X(1));TAB(30);CHR$(245);
- 680 LPRINT TAB(50);CHR$(245);TAB(55);"Zout =";R(2);B$;" J";ABS(X(2))
- 690 GOSUB 780
- 700 GOSUB 790
- 710 LPRINT :LPRINT "NOTE: Lg IS THE GUIDED WAVELENGTH OF THE LINE USED."
- 720 GOTO 740
- 730 PRINT :PRINT "MATCH NOT REALIZABLE"
- 740 PRINT :BEEP :PRINT "CONTINUE? (Y/N)"
- 750 C$=INKEY$ :IF C$="" THEN 750
- 760 IF C$="Y" THEN 770 ELSE END
- 770 CLS :GOTO 130
- 780 FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U :RETURN
- 790 FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U :RETURN
- 800 FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U :RETURN
-